home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Presentations / Presentations ’96 / Sessions ’96 / AI and The Mac / Demos / TravSales.Think / CityMap.h < prev    next >
Encoding:
Text File  |  1996-06-22  |  1.6 KB  |  76 lines  |  [TEXT/MPS ]

  1. //        TCityMap.cp
  2. // Copyright © 1992 Emergent Behavior. All rights reserved.
  3.  
  4.  
  5. #ifndef _CITYMAP_
  6. #define _CITYMAP_
  7.  
  8. #ifndef _QUICKDRAW_
  9.     #include <QuickDraw.h>
  10. #endif
  11.  
  12. #ifndef _GATYPES_
  13.     #include <GATypes.h>
  14. #endif
  15.  
  16. #ifndef __MATH__
  17.     #include <Math.h>
  18. #endif
  19.  
  20. typedef    float    Distance;
  21. typedef short    City;
  22. typedef City*    Route;
  23. typedef short    Importance;
  24. typedef short    CityNumber;
  25.  
  26.  
  27. //========================================================================
  28. class TPoint
  29. {
  30. public:
  31.                 TPoint( void );
  32.                 TPoint( short xCoord, short yCoord );
  33.  
  34.                 operator Point();
  35. private:
  36.     Point    fPoint;
  37. };
  38.  
  39.  
  40. //========================================================================
  41. class TCityMap
  42. {
  43. public:
  44.         // Constructors etc...
  45.                         TCityMap( void );
  46.                         TCityMap( const TCityMap& sourceMap );
  47.                         TCityMap( CityNumber numCities );
  48.     virtual                ~TCityMap( void );
  49.     virtual TCityMap*    Clone( void );
  50.     
  51.         // Range Calculations
  52.     virtual    Distance    CalcRouteDistance( Importance* importanceList ) const;
  53.     virtual    CityNumber    GetNumberCities( void ) const;
  54.     virtual    Point*        GetCityLocations( void ) const;
  55.     virtual Route        SortCities( Importance* importanceList ) const;
  56.  
  57.  
  58. protected:
  59.         // Range Calculations
  60.     virtual    Distance    CalcTotalDistance( Route theRoute ) const;
  61.     virtual Distance    GetCityDistance( City city1, City city2 ) const;
  62.     
  63.     virtual void        DecideCityLocations( void );
  64.     virtual void        GenerateDistanceTable( void );
  65.     virtual void        AllocateDistanceTable( void );
  66.     virtual    void        SetNumberCities( CityNumber numCities );
  67.     virtual    void        SetCityLocations( Point* cityLocations );
  68.  
  69. private:
  70.     Distance**        fDistanceTable;
  71.     Point*            fCityLocations;
  72.     CityNumber        fNumberCities;
  73. };
  74.  
  75.  
  76. #endif